<?php
namespace App\Models;

// 引入CSV模型模板（实验文档Step 2要求：命名空间后添加，确保能调用CSV数据处理方法）
use App\Models\Simple\CSVModel;

/**
 * Places 模型（基于CSV文件加载数据）
 * 功能：替代原硬编码数据，从writable/data/placesData.csv读取地点信息
 */
class Places extends CSVModel {  // 继承CSVModel（实验文档Step 2要求：实现CSV数据加载能力）

    // 1. 配置数据源路径（实验文档Step 2要求：指向CSV数据文件，WRITEPATH为框架内置常量，对应writable文件夹）
    protected $origin = WRITEPATH . "data/placesData.csv";

    // 2. 配置主键字段（实验文档Step 2要求：指定“id”为唯一标识，与CSV文件中id字段对应，用于单条数据查询）
    protected $keyField = 'id';

    // 3. 配置数据验证规则（实验文档Step 2要求：基于CSV中6条数据的字段特性设置，确保数据合法性）
    protected $validationRules = [
        'id' => 'required|integer',          // id必填，且为整数（CSV中id为1-6的整数）
        'name' => 'required|string|max:50',  // 地点名称必填，字符串类型，最大长度50字符（适配所有地点名长度）
        'description' => 'required|string',  // 地点描述必填，字符串类型（适配长文本描述）
        'image' => 'required|string',        // 图片文件名必填，字符串类型（如hongkong.jpg、singapore.jpg）
        'link' => 'permit_empty|string',     // link字段可选（第6条数据无link），允许为空，字符串类型
        'tourism_site' => 'permit_empty|string'  // tourism_site字段可选（前5条数据无），允许为空，字符串类型
    ];

}